var permute = function (nums) {
    let path = []
    const dfs = (ans = []) => {
        // 是否得到答案
        if (path.length === nums.length) {
            // 引用值传递注意深拷贝一份
            ans.push(path.concat())
            return
        }
        for (let i = 0; i < nums.length; i++) {
            // 已经在路径中
            if (path.indexOf(nums[i]) !== -1) continue
            else {
                path.push(nums[i])
                dfs(ans)
                // 恢复现场
                path.pop()
            }
        }
        return ans
    }
    return dfs()
}